ลองนึกภาพห้องสมุดที่หนังสือไม่ได้จัดเรียงตามวันที่มาถึง แต่จัดโดยใช้ กุญแจสากลซึ่งเป็นการเปลี่ยนแปลงแนวคิดจากแบบลำดับไปยัง คอนเทนเนอร์เชิงความสัมพันธ์แทนที่จะสแกน เวกเตอร์ แบบเส้นตรง ($O(N)$) เราจะใช้ แมป หรือ เซต เพื่อให้การค้นหาใช้เวลาลอการิธึม ($O(\log n)$)
1. ธรรมชาติของการเชื่อมโยง
ใน แมปเราเก็บข้อมูล คู่คีย์-ค่าคีย์ทำหน้าที่เป็นดัชนี ซึ่งสามารถเป็นสตริง วัตถุผู้ใช้กำหนด หรือประเภทใด ๆ ที่รองรับ การจัดเรียงอย่างเข้มงวดและ เซตกลับกัน เก็บเฉพาะคีย์ที่ไม่ซ้ำกัน จึงเหมาะสำหรับการตรวจสอบสมาชิกหรือกรองข้อมูล
2. แบบเรียงลำดับกับแบบไม่เรียงลำดับ
คอนเทนเนอร์มาตรฐาน (แมป, เซต) จะจัดเรียงคีย์ให้อยู่ตามลำดับ ตามมาตรฐานภาษา C++11 ได้แนะนำเวอร์ชันที่ไม่เรียงลำดับ (unordered_map) ที่ใช้ฟังก์ชันแฮช ฟังก์ชันแฮช เพื่อประสิทธิภาพเฉลี่ย $O(1)$ มองหา โลโก้ C++11 เมื่อใช้งานบักเก็ตประสิทธิภาพสูงเหล่านี้
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>